home *** CD-ROM | disk | FTP | other *** search
/ Transactor / Transactor_15_1987_Transactor_Publishing.d64 / cap meter (.txt) < prev    next >
Commodore BASIC  |  2023-02-26  |  3KB  |  76 lines

  1. 1 rem *********************************
  2. 2 rem **  capacitance meter software **
  3. 3 rem **  name:  cap                 **
  4. 4 rem **  (c) 1985, j.j. barbarello  ** 5 rem **  manalapan, nj  07726       **
  5. 6 rem **  v 1.1, 11 nov 85           **
  6. 7 rem *********************************
  7. 10 gosub 440:print:r(0)=9.75:f(0)=19:r(1)=.00979:f(1)=2
  8. 20 data 120,169,0,141,1,221,169,2,141,1
  9. 30 data 221,162,2,160,0,169,1,45,1,221
  10. 40 data 240,15,232,234,234,234,234,234
  11. 50 data 224,0,208,239,200,192,0,208,234
  12. 60 data 142,0,193,140,1,193,88,96,999
  13. 70 a=49152:c=a:fori=1to16:sp$=sp$+" ":next
  14. 80 b1$=chr$(176)+"[195][195]"+chr$(174)
  15. 90 b2$=chr$(173)+"[195][195]"+chr$(189)
  16. 100 read b:if b<>999 then poke a,b:a=a+1:goto 100
  17. 110 gosub 620:poke 56579,254:poke 56577,6
  18. 120 col=10:ro=9:gosub670:print b1$:ro=10:gosub670:print"[194]f1[194]";
  19. 130 print b$;" _ low range":ro=11:gosub670:print b2$
  20. 140 ro=12:gosub670:print b1$:ro=13:gosub670:print"[194]f3[194]";b$;" _ high range"
  21. 150 ro=14:gosub670:print b2$:ro=15:gosub670:print b1$
  22. 160 ro=16:gosub670:print"[194]f5[194]";b$;" _ clear display":ro=17:gosub670:print b2$
  23. 170 ro=18:gosub670:print b1$:ro=19:gosub670:print"[194]f7[194]";b$;" _ off"
  24. 180 ro=20:gosub670:print b2$:goto 270
  25. 190 co=12:ro=5:gosub 670:print sp$
  26. 200 sys c:x=peek(49409)*256+peek(49408)
  27. 210 if ri=0 and x<f(0)+5 then x=0:goto 240
  28. 220 if x>1000 then 240
  29. 230 av=0:for i=1to10:sys c:x=peek(49409)*256+peek(49408):av=av+x:next:x=av/10
  30. 240 printchr$(159):if x<=f(ri) then x$="[157][157][157]out of range":x=0
  31. 250 co=18:row=5:gosub 670:x=(x-f(ri))/(43300*r(ri)):gosub510:print x$
  32. 260 ro=rr:co=11:gosub670:print fu$
  33. 270 get a$:if a$="" then 270
  34. 280 g=asc(a$):if g<133 or g>136 then 270
  35. 290 on g-132 goto 300,320,340,360
  36. 300 ro=10:co=11:gosub670:printchr$(18);"f1":rr=10:fu$="f1"
  37. 310 poke 49159,2:poke 56577,2:ri=0:fi=0:goto 190
  38. 320 ro=13:co=11:gosub670:printchr$(18);"f3":rr=13:fu$="f3"
  39. 330 poke 49159,6:poke 56577,6:ri=1:goto 190
  40. 340 gosub 400:goto 270
  41. 350 poke 49408,0:poke 49409,0:goto190
  42. 360 rem** end
  43. 370 printchr$(147):ro=12:co=10:gosub670
  44. 380 printchr$(18);" meter off ";chr$(146);" - program ended."
  45. 390 print:print:print:end
  46. 400 rem** clear display (f5 function)
  47. 410 ro=16:co=11:gosub 670:printchr$(18);"f5"
  48. 420 co=12:ro=5:gosub 670:print sp$:for i=1 to 200:next i
  49. 430 ro=16:co=11:gosub 670:print"f5":return
  50. 440 rem** format screen=
  51. 450 poke 53280,6:poke 53281,6:printchr$(147)
  52. 460 b$=chr$(30)+chr$(18):bl$="        "+b$+"                        ":printbl$
  53. 470 printtab(8);chr$(30)chr$(18)chr$(142);" c-64 capacitance meter "
  54. 480 printbl$:bb$="        "+b$+"  "+chr$(146)+"                    "+b$+"[160][160]"
  55. 490 printbb$:printbb$:printbb$
  56. 500 fori=1to14:printbl$:next i:print bl$:return
  57. 510 rem ** format output
  58. 520 if x<=0 then return
  59. 530 p$=right$(str$(x),4):if asc(p$)<>69 then 580
  60. 540 p=val(right$(p$,2)):po=p+2
  61. 550 x$=str$(int(x*10^po+.5))
  62. 560 x$=right$(x$,len(x$)-1):if p=5 then x$=left$(x$,2)
  63. 565 if p$="e-03" then print ".00"x$" uf": return
  64. 570 x$=x$+" "+chr$(18)+"pf":return
  65. 580 p=1:if x<1 then p=1000:goto 610
  66. 590 if x<10 then p=100:goto 610
  67. 600 if x<100 then p=10
  68. 610 x=int(x*p+.5):x=x/p:x$=str$(x):x$=right$(x$,len(x$)-1)+" uf":return
  69. 620 rem* cursor control using plot               kernel ($fff0)
  70. 630 data 162,0,160,0,24,32,240,255,96,999
  71. 640 a=49300:sc=a
  72. 650 read b:if b<>999 then poke a,b:a=a+1:goto 650
  73. 660 return
  74. 670 poke sc+3,col:poke sc+1,row:sys sc
  75. 680 return
  76.